<?php
/**
 * 一开始看到function (参数) use (arg[])的用法还是感觉很陌生的，后来看了一下，就是php的闭包，也就是匿名函数的用法。详细的demo可以看下方链接。
我的理解是: 就是和java一样的匿名函数，只是有了一个use关键字，这个关键字传递进去的参数，一旦在函数内进行了修改，函数外再调用就会发生同样的变化。类似于c的地址传递。因为php的变量作用域，在类中定义的变量，是不能在函数内部直接使用的。所以要use传递进去，达到类似java的类变量的那种用法的效果。
在所有函数外部定义的变量，拥有全局作用域。除了函数外，全局变量可以被脚本中的任何部分访问，要在一个函数中访问一个全局变量，需要使用 global 关键字。也因此，为了扩展作用域，所以有了use（）关键字来实现。
————————————————

                            版权声明：本文为博主原创文章，遵循 CC 4.0 BY-SA 版权协议，转载请附上原文出处链接和本声明。
                        
原文链接：https://blog.csdn.net/qq_42031483/article/details/106818152
 * 
 */
?>
 <?php
function test() {
    $b = 'hello';
    return function ($a) use ($b) {
        echo $b ." ". $a;
    };
}
$b = test();
$b('world');//结果是hello world
?>

<?php
function test1() {
    $b1 = 'hello1';
    return function ($a1)  {
        echo $b1 ." ". $a1;
    };
}
$b1 = test1();
$b1('world1');
?>
//报错

